Initial support for new Pango attributes
authorMatthias Clasen <mclasen@redhat.com>
Wed, 1 Sep 2021 14:32:45 +0000 (10:32 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Wed, 1 Sep 2021 14:32:45 +0000 (10:32 -0400)
This is still missing the GtkTextTag hookup,
but it fixes the build.

demos/gtk-demo/fontify.c
gtk/gtkpango.c
gtk/gtktextbuffer.c

index 34b5063b462060adf0b2c8a8a79632bf2950a0ea..cdbdf654d31c2c4dbc28dee5e6a18c06ac06c392 100644 (file)
@@ -283,6 +283,14 @@ insert_tags_for_attributes (GtkTextBuffer     *buffer,
           VOID_ATTR (sentence);
           break;
 
+        case PANGO_ATTR_BASELINE_SHIFT:
+          INT_ATTR (baseline_shift);
+          break;
+
+        case PANGO_ATTR_FONT_SCALE:
+          INT_ATTR (font_scale);
+          break;
+
         case PANGO_ATTR_SHAPE:
         case PANGO_ATTR_ABSOLUTE_SIZE:
         case PANGO_ATTR_GRAVITY:
index 94207eb5cc1985783a10edfc3c26db648bae80c7..58ee7a3bf296378891da387a9a1cb2c6df3ab97f 100644 (file)
@@ -267,6 +267,21 @@ attribute_from_text (GtkBuilder  *builder,
     case PANGO_ATTR_SENTENCE:
       attribute = pango_attr_sentence_new ();
       break;
+    case PANGO_ATTR_BASELINE_SHIFT:
+      if (gtk_builder_value_from_string_type (builder, PANGO_TYPE_BASELINE_SHIFT, value, &val, NULL))
+        attribute = pango_attr_baseline_shift_new (g_value_get_enum (&val));
+      else if (gtk_builder_value_from_string_type (builder, G_TYPE_INT, value, &val, NULL))
+        attribute = pango_attr_baseline_shift_new (g_value_get_enum (&val));
+      else
+        g_set_error (error,
+                     GTK_BUILDER_ERROR,
+                     GTK_BUILDER_ERROR_INVALID_VALUE,
+                     "Could not parse '%s' as baseline shift value", value);
+      break;
+    case PANGO_ATTR_FONT_SCALE:
+      if (gtk_builder_value_from_string_type (builder, PANGO_TYPE_FONT_SCALE, value, &val, error))
+        attribute = pango_attr_font_scale_new (g_value_get_enum (&val));
+      break;
     case PANGO_ATTR_INVALID:
     default:
       break;
index 67d1e47056f1e85b3799a45d7a7672b2f9ec471d..4ec5fe60771a07ab75c7a96b40464b45904d5df6 100644 (file)
@@ -4736,6 +4736,14 @@ insert_tags_for_attributes (GtkTextBuffer     *buffer,
           VOID_ATTR (sentence);
           break;
 
+        case PANGO_ATTR_BASELINE_SHIFT:
+          INT_ATTR (baseline_shift);
+          break;
+
+        case PANGO_ATTR_FONT_SCALE:
+          INT_ATTR (font_scale);
+          break;
+
         case PANGO_ATTR_SHAPE:
         case PANGO_ATTR_ABSOLUTE_SIZE:
         case PANGO_ATTR_GRAVITY: